In a cloud computing environment, computing is delivered as a service rather than a product, whereby shared resources, software and information are provided to computers and other devices as a metered service over a network, such as the Internet. In such an environment, computation, software, data access and storage services are provided to users that do not require knowledge of the physical location and configuration of the system that delivers the services.
In a virtualized computer environment, such as may be implemented in a cloud computing node of the cloud computing environment, the virtualized computer environment includes a virtual operating system. The virtual operating system includes a common base portion and separate user portions that all run on a physical computer. The physical computer is referred to as a host. The common base portion may be referred to as a hypervisor and each user portion may be called a guest. Each guest is a logical partition of physical resources of the computer. A guest operating system runs on each guest, and the guest appears to the guest operating system as a real computer. Each guest operating system may host one or more virtual machines.
Currently, when one or more virtual machines are over utilizing a resource(s) (e.g., disk I/O operations), such over utilization may adversely affect its neighboring virtual machines, such as preventing these virtual machines from effectively servicing their workloads so as to meet the requirements of their service-level agreements. A service-level agreement refers to a service contract where the level of service is formally defined.
When it is detected that the neighboring virtual machines are being adversely affected, additional resources may be provided to the adversely affected virtual machines and/or some of the adversely affected virtual machines may be migrated to other areas of the cloud computing environment to address the performance degradation. However, customers may have already exhausted their purchased resource allocation so providing additional resources may not be an option. Similarly, there may not be enough free resources in the cloud node to augment the virtual machine's local resource allocation. Furthermore, the migration technique is not desired as it assumes that unused resources exist elsewhere in the cloud, which may not be the case.